There are many computing machines and systems known in the prior art. Many of these systems can perform one or more arithmetic functions. These functions are the usual functions such as addition, subtraction, multiplication and/or division. However, an N-th root extractor, (for example, a square root extractor) and a calculator of the reciprocal of a number are usually not implemented in hardware. Instead, they are implemented in either firmware or software which has a significantly lower performance than an implementation in hardware.
A circuitry for computing the N-th root of a number may be needed in various applications. For instance, the square root of a number is used in an exponentially weighted root mean square (ERMS) detector implemented in the form of a root extracting circuit. The ERMS detector determines the energy of an electrical signal by carrying out the steps of: (i) squaring the signal, (ii) convolving the squared signal with an exponential filter, and (iii) extracting the square root of the integrated signal. These steps imply that if the input signal is s(u), then the output signal U(t) from the ERMS detector representing the energy of the input signal as function of time t is reflected by the following equation:
                                          U            ⁡                          (              t              )                                =                                                    1                τ                            ⁢                                                ∫                                      -                    ∞                                    t                                ⁢                                                                            s                      2                                        ⁡                                          (                      u                      )                                                        ⁢                                      ⅇ                                          -                                                                        t                          -                          u                                                τ                                                                              ⁢                                                                          ⁢                                      ⅆ                    t                                                                                      ,                            (        1        )            where τ is a weighting constant.
Referring now to FIG. 1, a typical digital ERMS detector 100 formed as a series circuit is illustrated. The ERMS detector 100 includes an input square unit 110, a low-pass filter 120 and square root extractor 130. The ERMS detector 100 receives the input signal s(u) at its input and produces the energy signal U(t) at the output. The amplitude values of the energy signal represent the energy of the original signal.
A circuitry for computing a reciprocal of a number may be used, for example, for divisional operations. In particular, the division of one number by another (i.e., A/B) can be carried out by first inverting the denominator B and then multiplying the reciprocal 1/B of the denominator by the numerator A.
Various methods and apparatuses for the purpose of determining a square root and/or a reciprocal value of a number represented by a signal (specifically a digital signal) are known in the art. These techniques include the calculations utilizing lookup tables (see, for example, U.S. Pat. Nos. 4,694,417 and 6,260,054), Newton iteration (see, for example, U.S. Pat. Nos. 5,206,823; 5,274,580 and 5,220,524), polynomial approximation (see, for example, U.S. Pat. Nos. 3,648,038; 5,235,535 and 5,798,955) and circuits that iterate recursive equations (see, for example, U.S. Pat. Nos. 4,757,467 and 6,108,682). However, the prior art square root extractors as well as the conventional computing circuits for inverting numbers are either slow or expensive, or produce output numbers that approximate the square root and reciprocal of a number with relatively low accuracy. Additionally, these techniques usually require an extensive use of memory or impose restrictions on the input values.
For example, the use of lookup tables requires that the root values are placed in a memory, e.g., a read only memory (ROM). The input signal is applied as an address code-word to the memory. Each location contains the square root value corresponding to the input number. Thus, a lookup table receives a certain signal value X and outputs the value √{square root over (X)} by extracting it from the memory. Although this approach is relatively fast and reliable, it requires large amounts of memory in order to store the wide range of possible square root results.
Another conventional technique for determining the N-th roots, in particular, the square roots of a number represented by an electric signal is an iterative technique referred to as the Newton method. For example, the technique utilizing the Newton method for determining the square roots may repeat execution of the following equation:
                              Y          ⁡                      (                          n              +              1                        )                          =                              Y            ⁡                          (              n              )                                -                                    1              2                        ⁢                          (                                                Y                  ⁡                                      (                    n                    )                                                  -                                  S                                      Y                    ⁡                                          (                      n                      )                                                                                  )                                                          (        2        )            wherein Y(n+1) is the current estimate of the square root of the value S and Y(n) is the previous estimate of the square root. This equation is iterated until the quantity Y(n)−S/Y(n) converges to a sufficiently small value, i.e., until Y(n) approximately equals Y(n+1). The number of iterations required in order to reach a certain level of precision varies and thus, so does the duration of process. Processing Eq. (2) requires the division of the value S by successive estimates Y(n), i.e., determining the reciprocal. Moreover, conventional iterative routines tend to converge slowly, making them unsuitable for systems that require rapid root extractions.
Another approach that also iterates recursive equations for calculating the square root value is disclosed in U.S. Pat. No. 4,757,467. The electronic circuit described in U.S. Pat. No. 4,757,467 performs iterations of the following equation:
                                          Y            ⁡                          (                              n                +                1                            )                                =                                    Y              ⁡                              (                n                )                                      +                                          1                2                            ⁢                              (                                                      S                                          i                      ⁢                                                                                          ⁢                      n                                                        -                                                            Y                      2                                        ⁡                                          (                      n                      )                                                                      )                                                    ,                            (        3        )            wherein Y(n+1) is the current estimate of the square root of the digital sample Sin and Y(n) is the previous estimate. However, iterating this equation provides accurate results only for a limited range of the input samples. In particular, the iteration of this equation can converge to the square root values of the sample Sin, in relatively few iterations, only for sample values in the range of 0<Sin≦2. For larger values of Sin equation (3) converges more slowly or diverges. This drawback can be overcome by multiplying the quantities (Sin−Y(n))2 by the factor 2−(INT(log4(Sin)+1), where INT(log4(Sin)) is the integer part of the logarithm to base 4 of the sample Sin. However, this factor includes the logarithmic function that makes the algorithm unsuitable for systems that require rapid root extractions. Moreover, nothing is indicated or suggested in U.S. Pat. No. 4,757,467 about determining the N-th root and/or reciprocal of a number represented by an electric signal.
Various other methods are known in the art for determining the mean square root and/or reciprocal values that utilize a polynomial approximation such as the Chebyshev expansion, Taylor expansion and others, which are ordinarily used for obtaining values of elementary functions. However, using such expansion techniques require a fairly long arithmetic operational time.